package com.wgchao.amc.mapstruct.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;

import com.wgchao.amc.common.validate.Assign;
import com.wgchao.amc.common.validate.Save;
import com.wgchao.amc.common.validate.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * @作者  wgchao
 * @时间 2019-10-29 
 * @用途  
 */

@AllArgsConstructor
@NoArgsConstructor
@Data
@JsonInclude(content = JsonInclude.Include.NON_NULL)
@ApiModel(value="SysBaseRoleDTO",description="角色信息")
public class SysBaseRoleDTO  implements Serializable {

	private static final long serialVersionUID =  8333150754051794263L;

	@NotNull(message = "角色ID缺失", groups = {Assign.class, Update.class})
	@ApiModelProperty(value="主键",name="id")
	private Long id;

	/**
	 * 角色名称
	 */
	@NotNull(message = "角色名称缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="角色名称",name="roleName")
	private String roleName;

	/**
	 * 所属机构编号
	 */
	@NotNull(message = "所属机构编号缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="所属机构编号",name="agencyCode")
	private String agencyCode;

	@ApiModelProperty(value="创建时间",name="createTime")
	private Date createTime;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value="创建人",name="createUser")
	private Long createUser;

	/**
	 * 删除标志
	 */
	@ApiModelProperty(value="删除标志",name="del")
	private boolean del;

	/**
	 * 删除时间
	 */
	@ApiModelProperty(value="删除时间",name="delTime")
	private Date delTime;

	/**
	 * 删除人
	 */
	@ApiModelProperty(value="删除人",name="delUser")
	private Long delUser;

	/**
	 * 最近更新时间
	 */
	@ApiModelProperty(value="最近更新时间",name="lastUpdateTime")
	private Date lastUpdateTime;

	/**
	 * 最近更新人
	 */
	@ApiModelProperty(value="最近更新人",name="lastUpdateUser")
	private Long lastUpdateUser;

	@ApiModelProperty(value="创建人信息",name="createUserInfo")
	private SysBaseUserDTO createUserInfo;

	@ApiModelProperty(value="最近更新人信息",name="lastUpdateUserInfo")
	private SysBaseUserDTO lastUpdateUserInfo;

	@ApiModelProperty(value="删除人信息",name="delUserInfo")
	private SysBaseUserDTO delUserInfo;

	@ApiModelProperty(value="所属机构信息",name="agencyInfo")
	private SysBaseAgencyDTO agencyInfo;

}
